<?php

//为了实现每周备份，这里对tempbackup表进行操作，先读取数据库，确定要删除的备份，然后再将备份放入
//和termbackup的区别在于，这里要先对数据库和文件夹进行一次删除操作，之后的操作和一般的备份是一样的。
//author CLARKYJ
//2012-07-22
include("deldir.php");
	$dbname = 'test'; 
	date_default_timezone_set('PRC');
    $filename = date("Y-m-d-h-i");
    echo $filename."\n";
    
    //连接数据库
    $con = mysql_connect("localhost","root","");
	if (!$con)
 	 {
 	 die('Could not connect: ' . mysql_error());
	  }
	mysql_select_db("test", $con);
	//查询数据库中的数据条数，如果少于4，则直接插入，如果多于4，则删除bid最小的那条记录即可
	$sql='select count(*) from tempbackup';
	$result=mysql_query($sql,$con);
	$num= mysql_fetch_array($result);
	
	echo $num[0];
	if ($num[0] == 4)
	{
		//这里删除bid最小的一条记录和对应的文件夹
		$min='select * from tempbackup where bid=(select min(bid) from tempbackup)';
		$res=mysql_query($min,$con);
		$detail=mysql_fetch_array($res);
		$name=$detail['date'];
		//如果再termbackup中也存在同一日期的记录，则文件夹不能删除，只删除数据库中的记录即可
		$check1='select *from termback where date='.$name;
		$check2=mysql_query($check1,$con);
		if ($check2 == null)
		{
			echo "no same date!\n";
			$path='C:/wamp/www/ivyproject/Public/backup/'.$name;
			$file=new deldir($path);
		}
		$delsql='delete from tempbackup  where bid=(select min(t.bid) from (select * from tempbackup) t)';
		echo $delsql."\n";
		mysql_query($delsql,$con);
	}
	
	
	//之后将数据库和文件夹进行备份即可
	//创建目录
    $path='C:/wamp/www/ivyproject/Public/backup/'.$filename.'/';
    if (!file_exists($path))
    mkdir(iconv("UTF-8", "GB2312", $path),0755,true);
    
    
    //备份upload文件夹
    //要备份文件夹，需要先删除原来的文件夹，以免造成冲突  
    include("dir.php");
    $from='C:/wamp/www/ivyproject/Public/uploads';
    $to='C:/wamp/www/ivyproject/Public/backup/'.$filename.'/'.$filename;
    $del = new deldir($to);   
    $file = new copyFile($from, $to);
    
	//备份数据库
	$dump_tool = "C:/wamp/bin/mysql/mysql5.5.20/bin/mysqldump";
    
    $name=$path.$filename.'.sql';
     $sql="insert into tempbackup values(NULL,'".$filename."','".$name."')";
	mysql_query($sql,$con);
    
    $command= $dump_tool.' -u root '.$dbname.' > C:/wamp/www/ivyproject/Public/backup/'.$filename.'/'.$filename.'.sql';
    exec($command); 
    //连接数据库，将最近的备份信息存储
    
    
    echo "备份完成，您可以在恢复中用本次备份的结果恢复数据库以及upload文件夹"; 
    